package com.a2j.web.car.service;

import com.a2j.beans.base.BaseBean;
import com.a2j.beans.base.BasePageBean;
import com.a2j.beans.car.type.CarTypeBySeriesVO;
import com.a2j.beans.car.type.CarTypePageBO;
import com.a2j.beans.car.type.CarTypeVO;

import java.util.List;

/**
 * Author: bzb
 * Data: 2022/1/18 22:32
 * Desc: 车型service
 */
public interface CarTypeService {

    /**
     * 新增车型
     * @param record 车型信息
     */
    void addCarType(CarTypeVO record);

    /**
     * 删除车型
     * @param id 车型id
     */
    void delCarType(Integer id);

    /**
     * 车型开关
     * @param id 车型id
     * @param enable 开关
     */
    void enable(Integer id, Integer enable);

    /**
     * 更新车型信息
     * @param record 车型信息
     */
    void updateCarTypeInfo(CarTypeVO record);

    /**
     * 查询车型详情
     * @param id 车型id
     * @return 车型信息详情
     */
    BaseBean<CarTypeVO> getCarTypeDetail(Integer id);

    /**
     * 根据入参条件,查询车型列表(分页)
     * @param record 车型分页及其他条件
     * @return 车型列表(完整数据)
     */
    BaseBean<BasePageBean<CarTypeVO>> getCarTypes(CarTypePageBO record);

    /**
     * 根据车系id,查询该分类下所有车型(分页)
     * @param record 车型分页及其他条件
     * @return 车型列表(简易数据)
     */
    BaseBean<BasePageBean<CarTypeBySeriesVO>> getCarTypesBySeriesId(CarTypePageBO record);


    //--------------------------四个额外列表-------------------------------------------

    /**
     * @return 生产年份列表
     */
    BaseBean<List<String>> getYearTypeList();

    /**
     * @return 排放标准列表
     */
    BaseBean<List<String>> getEffluentStandardList();

    /**
     * @return 销售状态列表
     */
    BaseBean<List<String>> getSaleStateList();

    /**
     * @return 规格类型列表
     */
    BaseBean<List<String>> getSizeTypeList();

}
